The present disclosure relates generally to progress bars and in particular to various improvements to progress bars that can enhance a user's experience.
A progress bar (also sometimes referred to as a status bar, or a completion status bar, etc.) is commonly used to convey a completion status of a task or a process, such as a loading of a web page, a file download, data transfer, etc. Different application programs may use progress bars in various different contexts. In one example, a browser application may use a progress bar to indicate a completion status of a web page being loaded for presentation to a user. In response to the user's selection of a uniform resource locator (URL) for a web page, the browser application may display a progress bar that conveys a completion status of the loading of the web page. The progress bar can be updated as the completion status of the loading of the web page changes. As such, via the progress bar, the user can roughly estimate a total completion time for the loading of the web page.
A progress bar typically includes a completion status indicator that visually represents the completion status of a task or the operation being performed. The completion status indicator may, for example, be in the form of a slider bar that moves from a start position towards an end position, where reaching the end position signals completion of the task or operation. In such an embodiment, the position of the completion status indicator can convey the completion status (e.g., a percentage of the task being completed) of the task or operation to the user. The user can use the information conveyed by the completion status indicator to approximate a completion time for the task or operation.
Conventional progress bars have a number of problems. First, due to the complexity of modern computing systems, varying disk, memory, processor, bandwidth and other factors can cause existing progress bars to exhibit non-linear behaviors, such as acceleration, deceleration, and pauses. This irregular behavior of progress bars can cause the progress bars to appear slow, clunky, and inaccurate in conveying an estimated completion time to a user.